﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Unscrambler.ViewModels;
using MvvmFoundation.Wpf;

namespace UnscramblerUnitTests.Mocks
{
    public class MockGameboardViewModel : IGameboardViewModel
    {
        public bool StartGameCommandExecuted
        {
            get;
            set;
        }

        public bool GetHintCommandExecuted
        {
            get;
            set;
        }

        public bool SkipWordCommandExecuted
        {
            get;
            set;
        }

        public event EventHandler<EventArgs> GameEnded;

        public void ForceGameToEnd()
        {
            if (GameEnded != null)
            {
                GameEnded(this, new EventArgs());
            }
        }

        public Unscrambler.Settings.IGameSettings GameSettings
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public Unscrambler.Data.IRandomWordChooser RandomWordChooser
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public System.Windows.Input.ICommand GetHintCommand
        {
            get { return new RelayCommand(() => GetHintCommandExecuted = true); }
        }

        public bool IsCurrentWordCorrect
        {
            get;
            set;
        }

        public System.Windows.Input.ICommand SkipWordCommand
        {
            get { return new RelayCommand(() => SkipWordCommandExecuted = true); }
        }

        public System.Windows.Input.ICommand StartGameCommand
        {
            get { return new RelayCommand(() => this.StartGameCommandExecuted = true); }
        }
    }
}
